home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / boot / bootinst.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2008-11-21  |  2KB  |  68 lines

  1. #!/bin/bash
  2.  
  3. set -e
  4. TARGET=""
  5. MBR=""
  6.  
  7. # Find out which partition or disk are we using
  8. MYMNT=$(cd -P $(dirname $0) ; pwd)
  9. while [ "$MYMNT" != "" -a "$MYMNT" != "." -a "$MYMNT" != "/" ]; do
  10.    TARGET=$(egrep "[^[:space:]]+[[:space:]]+$MYMNT[[:space:]]+" /proc/mounts | cut -d " " -f 1)
  11.    if [ "$TARGET" != "" ]; then break; fi
  12.    MYMNT=$(dirname "$MYMNT")
  13. done
  14.  
  15. if [ "$TARGET" = "" ]; then
  16.    echo "Can't find device to install to."
  17.    echo "Make sure you run this script from a mounted device."
  18.    exit 1
  19. fi
  20.  
  21. if [ "$(cat /proc/mounts | grep "^$TARGET" | grep noexec)" ]; then
  22.    echo "The disk $TARGET is mounted with noexec parameter, trying to remount..."
  23.    mount -o remount,exec "$TARGET"
  24. fi
  25.  
  26. MBR=$(echo "$TARGET" | sed -r "s/[0-9]+\$//g")
  27. NUM=${TARGET:${#MBR}}
  28. cd "$MYMNT"
  29.  
  30. clear
  31. echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
  32. echo "                        Welcome to Slax boot installer                         "
  33. echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
  34. echo
  35. echo "This installer will setup disk $TARGET to boot only Slax."
  36. if [ "$MBR" != "$TARGET" ]; then
  37.    echo
  38.    echo "Warning! Master boot record (MBR) of $MBR will be overwritten."
  39.    echo "If you use $MBR to boot any existing operating system, it will not work"
  40.    echo "anymore. Only Slax will boot from this device. Be careful!"
  41. fi
  42. echo
  43. echo "Press any key to continue, or Ctrl+C to abort..."
  44. read junk
  45. clear
  46.  
  47. echo "Flushing filesystem buffers, this may take a while..."
  48. sync
  49.  
  50. # setup MBR if the device is not in superfloppy format
  51. if [ "$MBR" != "$TARGET" ]; then
  52.    echo "Setting up MBR on $MBR..."
  53.    ./boot/syslinux/lilo -S /dev/null -M $MBR ext # this must be here to support -A for extended partitions
  54.    echo "Activating partition $TARGET..."
  55.    ./boot/syslinux/lilo -S /dev/null -A $MBR $NUM
  56.    echo "Updating MBR on $MBR..." # this must be here because LILO mbr is bad. mbr.bin is from syslinux
  57.    cat ./boot/syslinux/mbr.bin > $MBR
  58. fi
  59.  
  60. echo "Setting up boot record for $TARGET..."
  61. ./boot/syslinux/syslinux -d boot/syslinux $TARGET
  62.  
  63. echo "Disk $TARGET should be bootable now. Installation finished."
  64.  
  65. echo
  66. echo "Read the information above and then press any key to exit..."
  67. read junk
  68.